package exceptions;//: exceptions/MultipleReturns.java

import static net.mindview.util.Print.*;

//多个返回点
public class MultipleReturns {
    public static void f(int i) {

        print("Initialization that requires cleanup");

        try {
            print("Point 1");
            if (i == 1) {
                return;
            }

            print("Point 2");
            if (i == 2) {
                return;
            }

            print("Point 3");
            if (i == 3) {
                return;
            }
            print("End");
            return;
        } finally {
            // Performing
            print("Performing cleanup");
        }
    }

    //无论在哪里返回，都要执行finally
    public static void main(String[] args) {

        for (int i = 1; i <= 4; i++) {
            f(i);
        }
    }
} /* Output:
Initialization that requires cleanup
Point 1
Performing cleanup
Initialization that requires cleanup
Point 1
Point 2
Performing cleanup
Initialization that requires cleanup
Point 1
Point 2
Point 3
Performing cleanup
Initialization that requires cleanup
Point 1
Point 2
Point 3
End
Performing cleanup
*///:~
